home *** CD-ROM | disk | FTP | other *** search
/ AMIGA PD 1 / AMIGA-PD-1.iso / NetBSD / docs-netbsd / Mailinglist-Archive / 1994-08.gz / 1994-08 / 000135_owner-current-u…s.berkeley.edu_Wed Aug 3 19:09:01 1994.msg < prev    next >
Text File  |  1994-10-16  |  2KB  |  38 lines

  1. To: volker@sfb256.iam.uni-bonn.de
  2. Cc: current-users@sun-lamp.cs.berkeley.edu
  3. Subject: Re: Bounce buffers 
  4.              <199408031428.QAA22922@sfb256.iam.uni-bonn.de> 
  5. X-Face: "Evs"_GpJ]],xS)b$T2#V&{KfP_i2`TlPrY$Iv9+TQ!6+`~+l)#7I)0xr1>4hfd{#0B4
  6.     WIn3jU;bql;{2Uq%zw5bF4?%F&&j8@KaT?#vBGk}u07<+6/`.F-3_GA@6Bq5gN9\+s;_d
  7.     gD\SW #]iN_U0 KUmOR.P<|um5yP<ea#^"SJK;C*}fMI;Mv(aiO2z~9n.w?@\>kEpSD@*e`
  8. From: Ken Hornstein <kenh@wrl.epi.com>
  9. Sender: owner-current-users@sun-lamp.cs.berkeley.edu
  10.  
  11. >> > There seems to be code is i386/isa/dma.c to implement bounce buffers for
  12. >> > dma above the 16Mb limit.  Is this different than what is required for a
  13. >> > bus-mastering scsi drive?
  14. >> 
  15. >> Yes.
  16. >
  17. >... said the idiot, when he meant "no" :-)  It's exactly the same problem.
  18.  
  19. Err, wait ... now you've got _me_ confused :-)  Please correct me if I'm wrong,
  20. but ...
  21.  
  22. The code in dma.c implements bounce buffering when you use the DMA controller
  23. on the motherboard.  This works fine for devices that are not bus-mastering
  24. (like the floppy drives).  If your buffer is at a higher address than 16Mb,
  25. it copies it to one in lower memory and copies it back after you call
  26. isa_dmadone().
  27.  
  28. However, since bus-mastering cards to DMA themselves, the way you typically use
  29. them is to program the information on the card and have them perform the DMA
  30. transfer (ie - you don't use the isa_dma* routines, except maybe
  31. isa_dmacascade() ).  But the card has no way of knowing if the buffer given it
  32. is greater than 16Mb, and even if it did, it wouldn't know what to do.
  33.  
  34. It seems to me you could implement this really cheezily by just implementing
  35. bounce buffers in each affected device driver (you could look for the test
  36. statements marked "DMA past end of ISA" and go from there).
  37.  
  38. --Ken